include_rules = [
  "+crypto",
  "+ios/shared/chrome/common",
  "+ios/third_party",
  "+net",
  "+services/network/test",
  "+services/network/public/cpp",
  "+sql",
  "+ui/base",
  "+ui/gfx",

  # Only parts of skia are compiled on iOS, so we explicitly list the
  # files that can be included to avoid bringing in more code.
  "+skia/ext/skia_utils_ios.h",
  "+third_party/skia/include/core/SkBitmap.h",
  "+third_party/skia/include/core/SkColor.h",
  "+third_party/skia/include/core/SkGraphics.h",

  # The subdirectories in ios/chrome/ will manually allow their own include
  # directories in ios/chrome/ so we disallow all of them.
  "-ios/chrome",
  "+ios/chrome/common",
  "+ios/chrome/test",

  "+ios/web/common",
  "+ios/web/public",

  # Chrome cannot use any ios/web APIs inside ios/web/public that are
  # designed only for ios/web_view.
  "-ios/web/public/web_view_only",

  # All code in ios/chrome assumes that web::BrowserState* can be safely
  # casted to ChromeBrowserState*. This mean that no code should use
  # web::TestBrowserState in ios/chrome.
  "-ios/web/public/test/fakes/test_browser_state.h",

  # Disallow direct uses of libraries that compose MaterialComponents.
  "+ios/third_party/material_components_ios",
  "-ios/third_party/material_font_disk_loader_ios",
  "-ios/third_party/material_internationalization_ios",
  "-ios/third_party/material_roboto_font_loader_ios",
  "-ios/third_party/material_sprited_animation_view_ios",
  "-ios/third_party/material_text_accessibility_ios",
  "-ios/third_party/motion_animator_objc",
  "-ios/third_party/motion_interchange_objc",
  "-ios/third_party/motion_transitioning_objc",

  # web::HttpServer is deprecated in favor of net::EmbeddedTestServer.
  # See crbug.com/891834.
  "-ios/web/public/test/http_server",
]
